package cn.jobstart.es.service;

import cn.jobstart.es.listener.event.ResumeEsEvent;
import cn.jobstart.es.mapper.ResumeEsMapper;
import cn.jobstart.es.model.ResumeEs;
import cn.jobstart.es.search.ResumeEsSearch;
import cn.jobstart.es.vo.ResumeEsDetailVO;
import cn.jobstart.es.vo.ResumeEsMatching;
import cn.jobstart.es.vo.ResumeEsVO;
import cn.jobstart.pubInter.exception.SkException;
import org.dromara.easyes.core.biz.EsPageInfo;

import java.util.List;
import java.util.Map;

/**
 * @author sunke
 * @version 1.0
 * @Description 简历
 * @date 2023-09-06 21:35
 */
public interface IResumeEsService extends IEsService<ResumeEs,ResumeEsSearch, ResumeEsMapper, ResumeEsEvent> {


    /**
     * 根据第三方ID 查询
     * @param thirdAccountId
     * @return
     */
    ResumeEs getDetailByThirdAccountId(String thirdAccountId);

    /**
     * 入到数据库
      * @param vo
     */
    void insertAll(ResumeEsMatching vo);

    /**
     * 匹配得到
     * @param vo
     * @return
     */
    Map<String,ResumeEsVO> matching(ResumeEsMatching vo);

    /**
     * 匹配得到第一个
     * @param vo
     * @return
     */
    ResumeEsVO matchingOne(ResumeEsMatching vo);


    /**
     * 发布到es
     *
     * @param resumeId
     * @throws SkException
     */
    void publishByResumeId(String resumeId) throws SkException;

    /**
     * 发布完整的
     *
     * @param resumeId
     * @throws SkException
     */
    void publishCompleteByResumeId(String resumeId) throws SkException;

    /**
     * 在校经历
     *
     * @param resumeId
     * @throws SkException
     */
    void publishAssociationActivityByResumeId(String resumeId) throws SkException;

    /**
     * 发布简历能力标签到es
     * @param resumeId
     * @throws SkException
     */
    void publishResumeCapabilityLabelByResumeId(String resumeId) throws SkException;

    /**
     * 发布证书到es
     * @param resumeId
     * @throws SkException
     */
    void publishResumeCertificateByResumeId(String resumeId) throws SkException;

    /**
     * 发布教育经历到es
     * @param resumeId
     * @throws SkException
     */
    void publishResumeEducationalExperienceByResumeId(String resumeId) throws SkException;

    /**
     * 发布求职意向到es
     * @param resumeId
     * @throws SkException
     */
    void publishResumeEmploymentIntentionByResumeId(String resumeId) throws SkException;


    /**
     * 发布实习经历到es
     * @param resumeId
     * @throws SkException
     */
    void publishResumeIntershipByResumeId(String resumeId) throws SkException;

    /**
     * 发布专业技能到es
     * @param resumeId
     * @throws SkException
     */
    void publishResumeProfessionalSkillsByResumeId(String resumeId) throws SkException;

    /**
     * 发布项目经历到es
     * @param resumeId
     * @throws SkException
     */
    void publishResumeProjectExperienceByResumeId(String resumeId) throws SkException;
    /**
     * 发布培训经历到es
     * @param resumeId
     * @throws SkException
     */
    void publishResumeTrainingExperienceByResumeId(String resumeId) throws SkException;

    /**
     * 发布工作经历到es
     * @param resumeId
     * @throws SkException
     */
    void publishResumeWorkExperienceByResumeId(String resumeId) throws SkException;







}
